package com.zg.niuke.simple;

import java.util.Scanner;

/**
 * 题目：HJ1 字符串最后一个单词的长度
 * 描述
 * 计算字符串最后一个单词的长度，单词以空格隔开，字符串长度小于5000。（注：字符串末尾不以空格为结尾）
 * 输入描述：
 * 输入一行，代表要计算的字符串，非空，长度小于5000。
 *
 * 输出描述：
 * 输出一个整数，表示输入字符串最后一个单词的长度。
 *
 * 示例1
 * 输入：
 * hello nowcoder
 * 输出：
 * 8
 * 说明：
 * 最后一个单词为nowcoder，长度为8
 */

public class Simple1 {
    public static void main(String[] args) {
        System.out.println("请输入：");
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String str = in.nextLine();

        System.out.println("输出结果：");

//        solution1(str);
        solution2(str);
    }

    public static void solution1(String s){
        String[] wordArr = s.split(" ");
        System.out.print(wordArr[wordArr.length - 1].length());
    }

    /**
     * 定义一个指针变量。
     * 从后往前遍历字符串，当遇到空格时，用指针记录位置信息，并终止循环。
     * 总长度减去指针到开头一段的长度，即得到最后一个单词的长度。
     */
    public static void solution2(String s){
        //定义指针变量
        int index=-1;
        for(int i=s.length()-1;i>=0;i--){
            //从后往前第一个空格的位置
            if(s.charAt(i)==' '){
                index=i;
                break;
            }
        }
        //总长度减去指针到开头一段的长度，即得到最后一个单词的长度
        System.out.println(s.length()-index-1);
    }
}
